package com.label.Utils.Common;


import org.apache.commons.mail.HtmlEmail;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;


/**
 * @author zhf
 * @date 2023/3/22 9:38
 * @version 1.0
 */

/**
 * @author zhf
 * 项目：studentLabel
 * 描述：用于发送邮箱验证码
 * @date 2023/3/22 9:38
 **/
@Component
public class SendEmailUtil {

    @Value("${spring.mail.email}")
    private String srcEmail;
    @Value("${spring.mail.hostname}")
    private String host;
    @Value("${spring.mail.username}")
    private String username ;
    @Value("${spring.mail.password}")
    private String password;

    /**
     * 发送验证码
     * @param email  接收邮箱
     * @param code   验证码
     * @return  void
     */

    public void sendAuthCodeEmail(String email,String code) {
        if(email == null){
            throw new RuntimeException("邮箱为空");
        }
        try {
            HtmlEmail mail = new HtmlEmail();
            /*发送邮件的服务器 126邮箱为smtp.126.com,163邮箱为163.smtp.com，QQ为smtp.qq.com*/
            mail.setHostName(host);
            /*不设置发送的消息有可能是乱码*/
            mail.setCharset("UTF-8");
            /*IMAP/SMTP服务的密码 username为你开启发送验证码功能的邮箱号 password为你在qq邮箱获取到的一串字符串*/
            mail.setAuthentication(srcEmail,password);
            /*发送邮件的邮箱和发件人*/
            mail.setFrom(srcEmail, username);
            /*使用安全链接*/
            mail.setSSLOnConnect(true);
            /*接收的邮箱*/
            mail.addTo(email);
            /*设置邮件的主题*/
            mail.setSubject("河北工业大学研究生复试性格测试系统登录验证码");
            /*设置邮件的内容*/
            mail.setMsg("尊敬的用户:你好! 登录验证码为:" + code + "(有效期为五分钟)");
            mail.send();//发送
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
